8. 生成学习算法的概念

生成学习算法,英文为Generative Learning Algorithm

我们之前看到的都是判别学习算法(Discriminative Learning Algorithm)。判别学习算法可以分成两种:

  1. 学得$p(y|x)$,比如之前的线性模型
  2. 学得一个假设$h_\theta (x) = \lbrace 0, 1 \rbrace$,比如二分类问题

上面都是根据特征$x$,来对输出$y$进行建模,也许$y$是一个连续的值,也可能是离散的,比如类别。

那么,生成学习算法(Generative Learning Algorithm)刚好跟判别学习算法(Discriminative Learning Algorithm)相反,其用输出$y$对$x$进行建模,也就是:学得$p(x|y)$

详细解释

对于一个二分类或多分类问题,生成学习算法,在给定样本所述的类别的条件下,会对其样本特征建立一个概率模型。举例而言,在给定癌症是良性或者是恶性的条件下,生成模型会对该癌症的特征的概率分布进行建模。

根据朴素贝叶斯,
$$
p(y=1|x)=\frac{p(x|y=1) p(y=1)}{p(x)}
$$
因为给定了$x$,所以$p(x)$可以视作1,也即
$$
p(y=1|x)=p(x|y=1) p(y=1)
$$

高斯判别算法

Gaussian Discriminant Algorithm

对特征满足高斯分布的二分类问题进行建模。

假设$x \in \Bbb R^n$,且$p(x|y)$满足高斯分布,因为$x$往往是一个特征向量,故而这里的高斯分布是一个多元高斯分布(multivariate Gaussian)

多元高斯分布,$z \sim N(\mu, \Sigma)$。
$$
p(z)=\frac{1}{\sqrt{(2\pi)^n|\Sigma|}}exp(-\frac{1}{2}(z-\mu)^T\Sigma^{-1}(z-\mu))
$$
$z$是一个$n$维向量,$\mu$则是均值向量,$\Sigma$是协方差矩阵:$E[(z-\mu)(z-\mu)^T]$。

对于一个二分类判别问题,正则响应函数为$\phi$,那么
$$
p(y)=\phi^y(1-\phi)^{1-y}
$$

$$
p(x|y=0) \sim N(\mu_0, \Sigma) \\
p(x|y=1) \sim N(\mu_1, \Sigma)
$$
(这里假设了,对于$y=0$和$y=1$,是两个不同均值,但协方差矩阵相同的多元高斯分布,所以这也是该模型的限制之一)

我们写出对数似然函数:
$$
\begin{align}
l(\phi, \mu_0, \mu_1, \Sigma) &= log\prod_{i=1}^mp(x^{(i)}, (y^{(i)})) \\
&= log\prod_{i=1}^mp(x^{(i)}| (y^{(i)}))p(y^{(i)})
\end{align}
$$

对比一下之前二分类问题中的对数似然估计函数:
$$
l(\theta) = \sum_{i=1}^mlog(P(y^{(i)}|x^{(i)};\theta))
$$
这里,我们使用了联合概率(joint likelihood): $p(x^{(i)}, (y^{(i)}))$,而在之前的判别模型里,我们用的是条件概率(conditional likelihood): $P(y^{(i)}|x^{(i)};\theta)$。因为,在判别模型中,特征$x$是给定的,所以用条件概率来进行极大似然估计;而在生成模型中,特征$x$不给定,所以需要用联合概率来进行极大似然估计。

然后,我们进行极大似然估计,得到:
$$
\phi=\frac{1}{m}\sum_{i=1}^my^{(i)}=\frac{1}{m}\sum_{i=1}^m 1\lbrace y^{(i)} = 1 \rbrace
$$
也就是分类标签为1的训练样本的比例。

再看$\mu_0, \mu_1$:
$$
\mu_0=\underbrace{\sum_{i=1}^m 1\lbrace y^{(i)} = 0 \rbrace \cdot x^{(i)}}_{(1)} /\underbrace{ \sum_{i=1}^m 1\lbrace y^{(i)} = 0 \rbrace}_{(2)} \\
\mu_1=\sum_{i=1}^m 1\lbrace y^{(i)} = 1 \rbrace \cdot x^{(i)} / \sum_{i=1}^m 1\lbrace y^{(i)} = 1 \rbrace
$$
式(1)表达了分类为0的样本中,特征$x$的和;式(2)表达了分类为0的样本个数;故而$\mu_0$表达了样本中,分类为0的样本的特征的均值。同理得到$\mu_1$。

我们再次回顾上面的高斯判别算法,事实上,高斯判别算法,假设了特征$x$满足了多元高斯分布,利用极大似然估计,对不同类别的特征$x$的分布进行了建模。

下节课我们将会探讨其他的关于生成学习算法的案例。